package com.gotloop.dao;

import java.util.List;

import com.gotloop.jdo.Following;
import com.gotloop.jdo.Loop;
import com.gotloop.jdo.UserProfile;
import com.gotloop.jdo.key.FollowPK;

/**
 * Following Data Access Object.
 * @author jibhaine
 *
 */
public interface FollowingDAO extends AbstractDAO<Following, FollowPK> {

	/**
	 * Gets the List of User following a given User.
	 * @param userProfile the followed
	 * @return a list of followers
	 */
	List<UserProfile> getFollowers(UserProfile userProfile);
	
	/**
	 * Gets the List of User a given user is following.
	 * @param userProfile the follower
	 * @return a list of user followed by this user
	 */
	List<UserProfile> getFollowing(UserProfile userProfile);
	
	/**
	 * Gets a list of loops for a user from its following. 
	 * @param userProfile the User 
	 * @return a list of Loops made by User followed by user.
	 */
	List<Loop> getLoopsFromFollowing(UserProfile userProfile);
	
}
